package scala

import java.io._

import scala.io.{BufferedSource, Source}

object Demo7IO {
  def main(args: Array[String]): Unit = {

    /**
      * 文件读写
      *
      */

    //使用java的方式
    //scala中的异常默认抛出
    val fileReader = new FileReader("data/students.txt")

    //缓冲流
    val bufferedReader = new BufferedReader(fileReader)

    //读取第一行
    var line: String = bufferedReader.readLine()

    while (line != null) {

      println(line)

      //读取下一行
      line = bufferedReader.readLine()
    }

    bufferedReader.close()

    println("=" * 100)

    /**
      * 使用scala读取数据
      *
      */

    val source: BufferedSource = Source.fromFile("data/students.txt")


    /**
      * 迭代器：
      * 迭代器只能迭代一次
      *
      */

    //获取所有行，得到一个迭代器
    val lines: Iterator[String] = source.getLines()

    for (line <- lines) {
      println(line)
    }

    println("=" * 100)

    for (line <- lines) {
      println(line)
    }


    //链式调用
    val iterator: Array[String] = Source.fromFile("data/students.txt").getLines().toArray




    /**
      * 保存数据使用java的方法
      * 输出流
      *
      */

    val bufferedWriter = new BufferedWriter(new FileWriter("data/out"))

    for (line <- iterator) {
      bufferedWriter.write(line)
      bufferedWriter.newLine()
      bufferedWriter.flush()
    }

    bufferedWriter.close()


  }

}
